package study.java.thread06;

/**
* @Name: StudentThreadDemo
* @Description: 线程间通信：针对同一个学生资源的生产者-消费者模式测试类
* 分析：
* 	资源类：Studnt
* 	生产者，生产学生数据：SetStudentRunnable
* 	消费者，消费学生数据：GetStudentRunnable
* 	测试类：StudentRunnableDemo
* 等待唤醒机制：
* 	Object类中提供了三个方法：
* 		wait()：等待
* 		notify()：唤醒
* 		notifyAll()：唤醒所有等待的线程
* 	为什么这些方法不定义在Thread类中呢？
* 		这些方法的调用必须通过同步代码块的锁对象（任意锁对象）调用，所以这些方法必修定义在Object对象中供任意锁对象调用。
* @Author: 李超	lc_jack@foxmail.com
* @CreateDate: 2017-1-9 下午4:48:49 
* @Version: V1.0
 */
public class StudentRunnableDemo {
	
	public static void main(String[] args) {
		//创建资源
		Student student = new Student() ;
		SetStudentRunnable setStu = new SetStudentRunnable(student) ;
		GetStudentRunnable getStu = new GetStudentRunnable(student) ;
		Thread t1 = new Thread(setStu) ;
		Thread t2 = new Thread(getStu) ;
		//启动线程
		t2.start() ;
		t1.start() ;
	}

}
